#[钛妹]: Python集合操作有五种常用方法？这和数学里的集合运算一样吗？
#[钛哥]: 完全对应！union是并集，intersection是交集，difference是差集...

#[钛妹]: 先看union方法，怎么合并两个集合？
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)  # 创建新集合包含所有元素
print(set3)              # {'a', 1, 2, 3, 'b', 'c'}

#[钛妹]: 竖线运算符也能合并吗？
set4 = set1 | set2       # 运算符效果等同union
print(set4)              # 输出与set3相同

#[钛妹]: 如何合并多个集合？
set5 = {"x", "y"}
set6 = {5, 6}
multi_union = set1.union(set2, set5, set6)
print(multi_union)       # 合并四个集合的元素

#[钛妹]: update方法有什么特别？
set7 = {"apple", "banana"}
set8 = {"google", "apple"}
set7.update(set8)        # 直接修改原集合
print(set7)              # {'apple','banana','google'}

#[钛妹]: 找共同元素怎么实现？
set9 = {True, 1, "a"}
set10 = {0, False, "a"}
common = set9.intersection(set10)
print(common)            # {'a'} (注意1和True不相等)

#[钛妹]: 交集运算符怎么用？
common_short = set9 & set10
print(common_short)      # 结果同上

#[钛妹]: 如何找出集合独有元素？
set11 = {"java", "python", "c++"}
set12 = {"python", "ruby"}
unique = set11.difference(set12)
print(unique)            # {'java', 'c++'}

#[钛妹]: 差集运算符呢？
unique_short = set11 - set12
print(unique_short)      # 结果同上

#[钛妹]: 什么是对称差集？
set13 = {1, 2, 3}
set14 = {3, 4, 5}
sym_diff = set13.symmetric_difference(set14)
print(sym_diff)          # {1, 2, 4, 5}

#[钛妹]: 运算符版本怎么写？
sym_short = set13 ^ set14
print(sym_short)         # 结果同上

#[钛妹]: 集合能和元组合并吗？
set15 = {"a", "b"}
tuple1 = ("c", 1)
mix_set = set15.union(tuple1)  # 注意传入的是可迭代对象
print(mix_set)           # {'a', 'b', 'c', 1}

#[钛妹]: intersection_update有什么用？
set16 = {1, 2, 3}
set17 = {2, 3, 4}
set16.intersection_update(set17)
print(set16)             # {2, 3} 直接修改原集合

#[钛哥]: 重点知识速记：
# 合并：union() 或 | 
# 更新：update()
# 交集：intersection() 或 &
# 差集：difference() 或 -
# 对称差集：symmetric_difference() 或 ^

#[钛妹]: 原来集合操作就像数据库的联表查询，这下彻底搞懂它们的区别了！
#[钛妹]: 对了各位！持续学习才是硬道理！点赞关注不迷路！